﻿Public Class KlantenToevoegForm

    Private _idKlant As Integer = 0

    Public ReadOnly Property IdKlant() As Integer
        Get
            Return _idKlant
        End Get
    End Property

#Region "Constructor"

    Public Sub New()
        Me.InitializeComponent()
    End Sub

#End Region

#Region "Events"

    Protected Overrides Sub OnKeyUp(ByVal e As KeyEventArgs)
        MyBase.OnKeyUp(e)
        Select Case e.KeyCode
            Case Keys.F2
                VoegKlantToeInDatabase()
        End Select
    End Sub

    Private Sub VoegKlantToeButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VoegKlantToeButton.Click
        VoegKlantToeInDatabase()
    End Sub

    Private Sub AnnuleerButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AnnuleerButton.Click
        Me.Close()
    End Sub

    Public Overrides Function ValidateChildren() As Boolean
        Me.ErrorProvider1.Clear()
        If (TextBoxNaam.Text.Length < 2) Then
            Me.ErrorProvider1.SetError(TextBoxNaam, "Geen geldige naam ingevuld")
            Return False
        End If
        If (TextboxAdres.Text.Length < 2) Then
            Me.ErrorProvider1.SetError(TextboxAdres, "Geen geldig adres ingevuld")
            Return False
        End If
        If (TextboxPostcode.Text.Length <> 4) Then
            Me.ErrorProvider1.SetError(TextboxPostcode, "Geen geldige postcode van 4 cijfers ingevuld")
            Return False
        End If
        If (TextBoxGemeente.Text.Length < 2) Then
            Me.ErrorProvider1.SetError(TextBoxGemeente, "Geen geldige gemeente ingevuld")
            Return False
        End If
        If (TextBoxTelefoon.Text.Length < 2 AndAlso TextBoxGSM.Text.Length < 2) Then
            Me.ErrorProvider1.SetError(TextBoxTelefoon, "Geen geldig telefoon- of gsm-nummer ingevuld")
            Return False
        End If
        Return MyBase.ValidateChildren()
    End Function

#End Region

#Region "Helpers"

    Private Sub VoegKlantToeInDatabase()
        Try
            If (Not ValidateChildren()) Then Return

            Dim klant As FairShop.ArtikelsDataSet.KlantenRow = Utility.Data.Klanten.NewKlantenRow()
            klant.Adres = TextboxAdres.Text
            klant.Email = TextBoxEmail.Text
            klant.Gemeente = TextBoxGemeente.Text
            klant.Postcode = TextboxPostcode.Text
            klant.Naam = TextBoxNaam.Text
            klant.Telefoon = TextBoxTelefoon.Text
            klant.GSM = TextBoxGSM.Text
            klant.Fax = TextBoxFax.Text
            klant.BTWNummer = TextBoxBTWNummer.Text
            klant.Klantenkaart = False
            Utility.Data.Klanten.AddKlantenRow(klant)

            Dal.KlantToevoegen(klant)

            _idKlant = klant.Id
            Me.DialogResult = Windows.Forms.DialogResult.OK
            Me.Close()

        Catch ex As Exception
            MsgBox.ShowError("Fout tijdens het bewaren van de klant")
            log.WriteError("KlantenToevoegForm.VoegKlantToeInDatabase", ex)
        End Try
    End Sub

#End Region

End Class